package com.baizhi.listx;

import com.baizhi.collectionx.Point;

import java.util.ArrayList;
import java.util.List;

/**
 * 集合中自定义元素的排序
 */
public class ListDemo08 {
    public static void main(String[] args) {
        List<Point>  list = new ArrayList<>();
        list.add(new Point(3,5));
        list.add(new Point(5,8));
        list.add(new Point(6,2));
        list.add(new Point(3,9));
        list.add(new Point(7,4));

        System.out.println(list);

//        Comparator<Point> c = new Comparator<Point>() { //匿名内部类
//            @Override
//            public int compare(Point o1, Point o2) { //指定排序规则
//               // return (o1.getX() * o1.getX() + o1.getY() * o1.getY() ) - (o2.getX()*o2.getX()+o2.getY()+o2.getY());
//                return (int) ((Math.pow(o1.getX(),2) + Math.pow(o1.getY(),2)) - (Math.pow(o2.getX(),2) + Math.pow(o2.getY(),2)));
//            }
//        };

        //Lambda表达式的写法
        //Collections.sort(list,(o1, o2) -> (o1.getX() * o1.getX() + o1.getY() * o1.getY() ) - (o2.getX()*o2.getX()+o2.getY()+o2.getY()));

        System.out.println(list);
    }
}
